for (var i = 1; i <= 3; i++) {
  setTimeout(() => {
    console.log(i);
  }, 500);
}

for (let i = 1; i <= 3; i++) {
  setTimeout(() => {
    console.log(i);
  }, 500);
}

for (var i = 1; i <= 3; i++) {
  (function (index) {
    setTimeout(function () {
      console.log(index);
    }, 500);
  })(i);
}
